package com.ld.hpfs.service;

import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.ld.hpfs.pojo.CustomerContact;
import com.ld.hpfs.pojo.ExpressPrint;

/**
 * 快递单打印Service接口
 * @author caohong
 *
 */
public interface ExpressPrintService {
	/**
	 * 获取快递单打印信息
	 * @param param
	 * @return
	 */
	public ArrayList<HashMap<String, Object>> getExpressPrintList(HashMap<String,Object> param);
	/**
	 * 获取快递单收件人信息
	 * @param param
	 * @return
	 */
	public List<CustomerContact> getContactList(HashMap<String,Object> param);
	/**
	 * 更新快递单快递信息
	 * @param param
	 * @return
	 */
	public int updateExpress(HashMap<String,Object> param);
	/**
	 * 获取合并用快递单收件人信息
	 * @param param
	 * @return
	 */
	public List<CustomerContact> getIdContactList(HashMap<String,Object> param);
	/**
	 * 获取联系人信息
	 * @param param
	 * @return
	 */
	public ArrayList<HashMap<String, Object>> getContacts(HashMap<String, Object> param);
	/**
	 * 清空快递单打印临时表数据
	 */
	public int deleteExpressPrintRpt (HashMap<String,Object> param);
	/**
	 * 插入一条数据到快递单临时表
	 * @param param
	 */
	public int insertExpressPrintRpt(HashMap<String,Object> param);
	/**
	 * 获取快递单打印临时表名
	 * @param param
	 * @return
	 */
	public String getExpressPrintTableName(HashMap<String,Object> param);
	/**
	 * 更新快递相关信息，并打印快递单
	 * @param session
	 * @param request
	 * @param response
	 * @param writer
	 */
	public void printExpress(HttpSession session,
    		HttpServletRequest request,
    		HttpServletResponse response,
    		PrintWriter writer,
    		int check);
	/**
	 * 获取生成的快递单PDF的URL
	 */
	public String getExpressURL(String id);
}
